package com.um.springboot.starter.orm.dao;

import com.baomidou.mybatisplus.annotation.TableName;
import com.um.springboot.starter.utils.NameUtils;

/**
 * @author 邓南辉
 * 日期 2021/4/10
 * 版权所有 广州优匠科技有限公司
 */
public class DefaultNameHandler implements NameHandler {

    /**
     * 根据实体名获取表名
     *
     * @return
     */
    @Override
    public String getTableName(Class<?> entity) {
        TableName tableName = entity.getAnnotation(TableName.class);
        return tableName.value();
    }

    /**
     * 根据表名获取主键名
     * @param entity 类名
     * @return
     */
    @Override
    public String getPrimaryName(Class<?> entity) {
        return getTableName(entity)+"_id";
    }

    /**
     * 根据属性名获取列名
     *
     * @param fieldName
     * @return
     */
    @Override
    public String getColumnName(String fieldName) {
        String underlineName = NameUtils.getColumnName(fieldName);
        return  underlineName;
    }

}
